package unit03.day02;
/**
 * 包装类是不可变类，在构造了包装类对象后，不允许更改包装在其中的值；
 * 包装类是final的，不能定义他们的子类；
 * 基本类型				基本类型					父类
 * 	int					java.lang.Integer		java.lang.Number
 * 	long				java.lang.Long			java.lang.Number
 * 	double				java.lang.Double		java.lang.Number
 * 	short				java.lang.Short			java.lang.Number
 * 	float				java.lang.Float			java.lang.Number
 * 	byte				java.lang.Byte			java.lang.Number
 * 	char				java.lang.Character		java.lang.Object
 * 	boolean				java.lang.Boolean		java.lang.Object
 * */
public class IntegerDemo1 {

	public static void main(String[] args) {
		dosome("abc");
		
		/**
		 * java的8个基本类型:
		 * byte,short,int,long,float,double.char,boolean
		 * 是以值的形式直接存在的，所以没有面向对象的特性
		 * */
		dosome(1);
		
		
		/**
		 * 将基本类型转换为包装类有两种方式：
		 * 1.调用构造方法
		 * 2.调用静态方法valueOf(推荐)
		 * 最大值只能是127  只能存储1个字节的数字，-128~127
		 * */
		Integer i1 = new Integer(123);
		Integer i2 = Integer.valueOf(123);
		
		
		/**
		 * 数字类型包装类都支持两个常量：
		 * MAX_VALUE,MIN_VALUE
		 * 分别保存了对应基本类型的最大值和最小值
		 * */
		int imax = Integer.MAX_VALUE;
		int imin = Integer.MIN_VALUE;
		double dmax = Double.MAX_VALUE;
		double dmin = Double.MIN_VALUE;
		System.out.println(imax);
		System.out.println(imin);
		System.out.println(dmax);
		System.out.println(dmin);
		
		/**
		 * 包装类提供了一个静态方法parseXXX(String str)
		 * 可以将给定的字符串转换为对应的基本类型
		 * 前提是该字符串必须正确的描述基本类型可以保存的值。
		 * */
		String str = "123";
		int i = Integer.parseInt(str);
		System.out.println(i + 1);
		
	}
		
	
	public static void dosome(Object obj) {
		
	}
}
